{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [],
   "source": [
    "from selenium import webdriver\n",
    "import re\n",
    "import pandas as pd\n",
    "import time\n",
    "\n",
    "\n",
    "# setting chrome\n",
    "chrome_options = webdriver.ChromeOptions()\n",
    "# chrome_options.add_argument('--headless')\n",
    "chrome_options.add_argument('--disable-gpu')\n",
    "chrome_options.add_argument(\"window-size=1024,768\")\n",
    "chrome_options.add_argument(\"--no-sandbox\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [],
   "source": [
    "browser = webdriver.Chrome(options = chrome_options)\n",
    "browser.maximize_window()\n",
    "url = 'https://www.51job.com/'\n",
    "browser.get(url)\n",
    "browser.find_element_by_xpath('//*[@id=\"kwdselectid\"]').clear()\n",
    "browser.find_element_by_xpath('//*[@id=\"kwdselectid\"]').send_keys('日语')\n",
    "browser.find_element_by_xpath('/html/body/div[3]/div/div[1]/div/button').click()\n",
    "\n",
    "# click secondory condition by text\n",
    "browser.find_element_by_link_text ('3-4万').click()\n",
    "time.sleep(2)\n",
    "pagedata = browser.page_source\n",
    "# print(pagedata)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['https://jobs.51job.com/shenzhen/124578332.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen/125777196.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen/126280279.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-baq/110137586.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-nsq/127027759.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shanghai/100476796.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-lhq/93990347.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-lgq/114903168.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-lgq/113312037.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/dongguan/128926268.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen/128830557.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-baq/131294462.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-nsq/129108620.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-ftq/96272645.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-nsq/132641442.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen/132335375.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-nsq/132608657.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen/131159694.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-nsq/132022843.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-baq/125555846.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/changsha-nxs/119629757.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen/131529964.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-ftq/126127617.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen/129557683.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-nsq/131429850.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-lhq/122704776.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-ftq/129575826.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-nsq/130776556.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen/126766247.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/dalian-gxyq/116097721.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/dalian-gxyq/130875556.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-baq/87554556.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-lgq/130390176.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-lgq/128183055.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-lhq/130688523.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-lhq/127722779.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/dongguan-txz/128565566.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/yiwu/123417276.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen/126132813.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-gmxq/129663044.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/nanjing/128622232.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/wuhan/108532245.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/weifang/132026385.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-nsq/125230140.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-nsq/128417875.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-baq/100362909.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-lgq/129282917.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen-lgq/123525812.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen/125611711.html?s=sou_sou_soulb&amp;t=0', 'https://jobs.51job.com/shenzhen/120768047.html?s=sou_sou_soulb&amp;t=0']\n",
      "50 50 50 50 50\n"
     ]
    }
   ],
   "source": [
    "r_company = '<a href=\".*?\" target=\"_blank\" title=\".*?\" class=\"cname at\">(.*?)</a>'\n",
    "r_position = '<span title=\".*?\" class=\"jname at\">(.*?)</span>'\n",
    "r_city = '<span class=\"d at\">(.*?)</span>'\n",
    "r_salary = '<span class=\"sal\">(.*?)</span>'\n",
    "# r_link = '<a href=\"(.*?)\" target=\"_blank\" class=\"el\">.*?<span title=\".*?\" class=\"jname at\">.*?</span>'\n",
    "r_link = '<div class=\"e_icons ick\">.*?<a href=\"(.*?)\" target=\"_blank\" class=\"el\">'\n",
    "\n",
    "company = re.findall(r_company, pagedata, re.S)\n",
    "# print (company)\n",
    "position = re.findall(r_position, pagedata, re.S)\n",
    "city = re.findall(r_city, pagedata, re.S)\n",
    "# print (city)\n",
    "salary = re.findall(r_salary, pagedata, re.S)\n",
    "link = re.findall(r_link, pagedata, re.S)\n",
    "# print(link)\n",
    "print(len(company), len(position), len(city), len(salary), len(link))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                     公司                                                 职位  \\\n",
      "0        深圳市腾讯计算机系统有限公司                                 15583-日语项目协调管理（深圳）   \n",
      "1         深圳市清日信息咨询有限公司                               日语IT营业经理-深圳福田-30-35K   \n",
      "2          广州然超信息科技有限公司                                  IT营业经理，日语，深圳D1020   \n",
      "3          玫晟光电（深圳）有限公司                                          日语销售（非电商）   \n",
      "4            深圳瑞铠科技有限公司                                           线上高考日语老师   \n",
      "5        德硕管理咨询（上海）有限公司                                         SAP 日语实施顾问   \n",
      "6          深圳市金斯达工贸有限公司                             亚马逊日语销售 日语营业 外贸业务 日语翻译   \n",
      "7          深圳市易腾拓科技有限公司                                        亚马逊日语运营（精品）   \n",
      "8          深圳市金安达科技有限公司                                       亚马逊运营（日语、英语）   \n",
      "9     蒲公英乐学日语教育（广东）有限公司                                   商务经理（年薪30w-100w）   \n",
      "10             PwC 普华永道  Senior Associate - Cyber Security(车企信息安全项目群管理)...   \n",
      "11        深圳市沁泽通达科技有限公司                                       产品经理（手机电脑周边）   \n",
      "12        深圳市金溢科技股份有限公司                                               项目经理   \n",
      "13       德硕管理咨询（深圳）有限公司                                            SAP项目经理   \n",
      "14        深圳市大疆创新科技有限公司                                    123040中级光学生产工程师   \n",
      "15         深圳市金诺威电子有限公司                                         亚马逊日本站运营经理   \n",
      "16      深圳市正浩创新科技股份有限公司                                           涉外法务合规经理   \n",
      "17                 字节跳动                                  全球品牌营销-Senior（亚洲）   \n",
      "18       OPPO广东移动通信有限公司                             高级资源采购经理（品牌）1306413068   \n",
      "19      深圳市骏楚企业管理咨询有限公司                                       品质总监/协理(台湾人)   \n",
      "20         湖南中科星城石墨有限公司                                             日韩外销经理   \n",
      "21     深圳市博皇未来家整装集采有限公司                                           产品研发中心经理   \n",
      "22     全球企业管理咨询（深圳）有限公司                                      ERP销售经理(深圳福田)   \n",
      "23        深圳市华周测控技术有限公司                                        CNC数控机床销售经理   \n",
      "24         深圳市鑫巨彩电子有限公司                                       外贸跟单/销售/销售经理   \n",
      "25        宏丰泽实业（深圳）有限公司                                           亚马逊日本站运营   \n",
      "26     深圳市可利亚企业管理咨询有限公司                                    智能制造团队业务总监(461)   \n",
      "27        深圳市速腾聚创科技有限公司                                    海外销售（智能驾驶-激光雷达）   \n",
      "28         深圳华瑞三和集团有限公司                                      电子电路行业市场本部总经理   \n",
      "29    赛伯尔（大连）信息技术咨询有限公司                                    软件开发工程师（长期日本出差）   \n",
      "30         富智（大连）科技有限公司                                    高薪对日Java软件开发工程师   \n",
      "31         深圳市永丰盛科技有限公司                                           手板模型外贸经理   \n",
      "32         深圳楚远医疗科技有限公司                                        日本站亚马逊运营合伙人   \n",
      "33         精奥科技（深圳）有限公司                                           亚马逊经理日本站   \n",
      "34        深圳市创通易购科技有限公司                                             亚马逊合伙人   \n",
      "35        深圳市数方电子商务有限公司                                          日本亚马逊高级运营   \n",
      "36  广东诚安信会计师事务所有限公司东莞分所                                     东莞塘厦 散热片生产制造管理   \n",
      "37         义乌玺岳电子商务有限公司                                        亚马逊日本站运营合伙人   \n",
      "38        广州市卡秀汽车用品有限公司                                               营业经理   \n",
      "39    深圳市慧赢天下企业管理顾问有限公司                                           总经理助理/总监   \n",
      "40         南京机蜂信息科技有限公司                                     对日软件工程师2021年招聘   \n",
      "41          湖北一片语科技有限公司                               IT工程师技术员Java，PHP，c#等   \n",
      "42             歌尔股份有限公司                                            结构设计工程师   \n",
      "43        恒大新能源科技集团有限公司                                       技术规划及合作-项目总监   \n",
      "44         深圳市元早城科技有限公司                                        海外营销渠道/区域经理   \n",
      "45          深圳市超麦科技有限公司                                           亚马逊日本站运营   \n",
      "46        深圳市铎汇电子商务有限公司                                       亚马逊运营主管（日本站）   \n",
      "47         深圳市辛可斯科技有限公司                                               产品总监   \n",
      "48         浙江京新药业股份有限公司                                        深圳巨烽-国际销售代表   \n",
      "49       无印良品（上海）商业有限公司                    副厨师长(Cafe&amp;Meal MUJI深圳机场远机位)   \n",
      "\n",
      "                                    地点          薪水  \\\n",
      "0         深圳  |  3-4年经验  |  本科  |  招2人               \n",
      "1         深圳  |  5-7年经验  |  本科  |  招1人    3-3.5万/月   \n",
      "2       异地招聘  |  5-7年经验  |  本科  |  招1人    3-3.5万/月   \n",
      "3       深圳-宝安区  |  无需经验  |  本科  |  招2人    10-50万/年   \n",
      "4       异地招聘  |  3-4年经验  |  本科  |  招4人     220元/小时   \n",
      "5      异地招聘  |  5-7年经验  |  本科  |  招10人    1-3.5万/月   \n",
      "6       深圳-龙华区  |  1年经验  |  大专  |  招3人      1-5万/月   \n",
      "7       深圳-龙岗区  |  1年经验  |  大专  |  招1人    20-60万/年   \n",
      "8       深圳-龙岗区  |  2年经验  |  大专  |  招5人      3-5万/月   \n",
      "9      异地招聘  |  3-4年经验  |  大专  |  招若干人    30-40万/年   \n",
      "10       深圳  |  5-7年经验  |  本科  |  招若干人               \n",
      "11    深圳-宝安区  |  3-4年经验  |  大专  |  招1人      3-4万/月   \n",
      "12   深圳-南山区  |  5-7年经验  |  本科  |  招若干人    2-3.5万/月   \n",
      "13  深圳-福田区  |  10年以上经验  |  大专  |  招若干人      3-5万/月   \n",
      "14   深圳-南山区  |  5-7年经验  |  本科  |  招若干人    24-48万/年   \n",
      "15        深圳  |  3-4年经验  |  本科  |  招1人      2-4万/月   \n",
      "16    深圳-南山区  |  5-7年经验  |  本科  |  招1人  2.5-3.5万/月   \n",
      "17        深圳  |  3-4年经验  |  本科  |  招1人      2-4万/月   \n",
      "18    深圳-南山区  |  5-7年经验  |  本科  |  招1人      3-4万/月   \n",
      "19    深圳-宝安区  |  5-7年经验  |  本科  |  招1人   50-100万/年   \n",
      "20      异地招聘  |  5-7年经验  |  本科  |  招1人    30-50万/年   \n",
      "21        深圳  |  3-4年经验  |  本科  |  招1人  2.5-3.5万/月   \n",
      "22    深圳-福田区  |  5-7年经验  |  本科  |  招1人      3-4万/月   \n",
      "23          深圳  |  2年经验  |  大专  |  招2人    2-3.5万/月   \n",
      "24     深圳-南山区  |  无需经验  |  大专  |  招若干人      2-4万/月   \n",
      "25    深圳-龙华区  |  3-4年经验  |  本科  |  招2人    0.8-4万/月   \n",
      "26    深圳-福田区  |  3-4年经验  |  本科  |  招1人  2.5-3.5万/月   \n",
      "27   深圳-南山区  |  8-9年经验  |  本科  |  招若干人    2-3.5万/月   \n",
      "28       深圳  |  10年以上经验  |  本科  |  招1人    50-60万/年   \n",
      "29        异地招聘  |  2年经验  |  大专  |  招3人    1.5-4万/月   \n",
      "30        异地招聘  |  1年经验  |  大专  |  招5人      2-4万/月   \n",
      "31      深圳-宝安区  |  2年经验  |  大专  |  招2人    25-50万/年   \n",
      "32     深圳-龙岗区  |  1年经验  |  本科  |  招10人    1.5-4万/月   \n",
      "33    深圳-龙岗区  |  3-4年经验  |  本科  |  招2人      2-4万/月   \n",
      "34   深圳-龙华区  |  3-4年经验  |  大专  |  招若干人      2-5万/月   \n",
      "35      深圳-龙华区  |  2年经验  |  大专  |  招2人  1.5-4.5万/月   \n",
      "36      异地招聘  |  8-9年经验  |  大专  |  招2人    2.8-4万/月   \n",
      "37        异地招聘  |  2年经验  |  大专  |  招3人   50-100万/年   \n",
      "38      异地招聘  |  8-9年经验  |  本科  |  招1人    3-3.5万/月   \n",
      "39   深圳-光明新区  |  5-7年经验  |  大专  |  招1人      3-4万/月   \n",
      "40       异地招聘  |  2年经验  |  大专  |  招15人      2-5万/月   \n",
      "41                异地招聘  |  本科  |  招20人    1.2-4万/月   \n",
      "42      异地招聘  |  5-7年经验  |  本科  |  招1人  1.5-3.5万/月   \n",
      "43    深圳-南山区  |  5-7年经验  |  本科  |  招1人      3-4万/月   \n",
      "44    深圳-南山区  |  8-9年经验  |  大专  |  招6人    25-50万/年   \n",
      "45     深圳-宝安区  |  1年经验  |  大专  |  招若干人    10-50万/年   \n",
      "46     深圳-龙岗区  |  2年经验  |  本科  |  招若干人      1-5万/月   \n",
      "47    深圳-龙岗区  |  5-7年经验  |  本科  |  招1人      2-4万/月   \n",
      "48      深圳  |  在校生/应届生  |  本科  |  招若干人               \n",
      "49    深圳  |  在校生/应届生  |  初中及以下  |  招1人               \n",
      "\n",
      "                                                   链接  \n",
      "0   https://jobs.51job.com/shenzhen/124578332.html...  \n",
      "1   https://jobs.51job.com/shenzhen/125777196.html...  \n",
      "2   https://jobs.51job.com/shenzhen/126280279.html...  \n",
      "3   https://jobs.51job.com/shenzhen-baq/110137586....  \n",
      "4   https://jobs.51job.com/shenzhen-nsq/127027759....  \n",
      "5   https://jobs.51job.com/shanghai/100476796.html...  \n",
      "6   https://jobs.51job.com/shenzhen-lhq/93990347.h...  \n",
      "7   https://jobs.51job.com/shenzhen-lgq/114903168....  \n",
      "8   https://jobs.51job.com/shenzhen-lgq/113312037....  \n",
      "9   https://jobs.51job.com/dongguan/128926268.html...  \n",
      "10  https://jobs.51job.com/shenzhen/128830557.html...  \n",
      "11  https://jobs.51job.com/shenzhen-baq/131294462....  \n",
      "12  https://jobs.51job.com/shenzhen-nsq/129108620....  \n",
      "13  https://jobs.51job.com/shenzhen-ftq/96272645.h...  \n",
      "14  https://jobs.51job.com/shenzhen-nsq/132641442....  \n",
      "15  https://jobs.51job.com/shenzhen/132335375.html...  \n",
      "16  https://jobs.51job.com/shenzhen-nsq/132608657....  \n",
      "17  https://jobs.51job.com/shenzhen/131159694.html...  \n",
      "18  https://jobs.51job.com/shenzhen-nsq/132022843....  \n",
      "19  https://jobs.51job.com/shenzhen-baq/125555846....  \n",
      "20  https://jobs.51job.com/changsha-nxs/119629757....  \n",
      "21  https://jobs.51job.com/shenzhen/131529964.html...  \n",
      "22  https://jobs.51job.com/shenzhen-ftq/126127617....  \n",
      "23  https://jobs.51job.com/shenzhen/129557683.html...  \n",
      "24  https://jobs.51job.com/shenzhen-nsq/131429850....  \n",
      "25  https://jobs.51job.com/shenzhen-lhq/122704776....  \n",
      "26  https://jobs.51job.com/shenzhen-ftq/129575826....  \n",
      "27  https://jobs.51job.com/shenzhen-nsq/130776556....  \n",
      "28  https://jobs.51job.com/shenzhen/126766247.html...  \n",
      "29  https://jobs.51job.com/dalian-gxyq/116097721.h...  \n",
      "30  https://jobs.51job.com/dalian-gxyq/130875556.h...  \n",
      "31  https://jobs.51job.com/shenzhen-baq/87554556.h...  \n",
      "32  https://jobs.51job.com/shenzhen-lgq/130390176....  \n",
      "33  https://jobs.51job.com/shenzhen-lgq/128183055....  \n",
      "34  https://jobs.51job.com/shenzhen-lhq/130688523....  \n",
      "35  https://jobs.51job.com/shenzhen-lhq/127722779....  \n",
      "36  https://jobs.51job.com/dongguan-txz/128565566....  \n",
      "37  https://jobs.51job.com/yiwu/123417276.html?s=s...  \n",
      "38  https://jobs.51job.com/shenzhen/126132813.html...  \n",
      "39  https://jobs.51job.com/shenzhen-gmxq/129663044...  \n",
      "40  https://jobs.51job.com/nanjing/128622232.html?...  \n",
      "41  https://jobs.51job.com/wuhan/108532245.html?s=...  \n",
      "42  https://jobs.51job.com/weifang/132026385.html?...  \n",
      "43  https://jobs.51job.com/shenzhen-nsq/125230140....  \n",
      "44  https://jobs.51job.com/shenzhen-nsq/128417875....  \n",
      "45  https://jobs.51job.com/shenzhen-baq/100362909....  \n",
      "46  https://jobs.51job.com/shenzhen-lgq/129282917....  \n",
      "47  https://jobs.51job.com/shenzhen-lgq/123525812....  \n",
      "48  https://jobs.51job.com/shenzhen/125611711.html...  \n",
      "49  https://jobs.51job.com/shenzhen/120768047.html...  \n"
     ]
    }
   ],
   "source": [
    "# for i in range(len(city)):\n",
    "#     city[i] = city[i].split('|')[0]\n",
    "# print (city)\n",
    "data = {'公司': company, '职位': position, '地点': city, '薪水': salary, '链接': link}\n",
    "data = pd.DataFrame(data)\n",
    "# print(data)\n",
    "data.to_excel(\"51job职位信息表.xlsx\", index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "time.sleep(5)\n",
    "browser.quit()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
